/*
 * Copyright (c) 2025 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import {
    global,
    passNode,
    unpackNonNullableNode,
    Es2pandaMemberExpressionKind,
    assertValidPeer,
    AstNode,
    Es2pandaAstNodeType,
    KNativePointer
} from "../reexport-for-generated"

import * as peers from "./index"

export const nodes = new Map<Es2pandaAstNodeType, { new(peer: KNativePointer): AstNode }>([
    [44, peers.LabelledStatement],
    [146, peers.ThrowStatement],
    [17, peers.ClassProperty],
    [94, peers.TSVoidKeyword],
    [66, peers.ETSFunctionType],
    [117, peers.TSTypeOperator],
    [38, peers.IfStatement],
    [126, peers.TSConstructorType],
    [22, peers.Decorator],
    [87, peers.TSEnumDeclaration],
    [99, peers.TSNeverKeyword],
    [41, peers.ImportDefaultSpecifier],
    [43, peers.ImportSpecifier],
    [19, peers.ConditionalExpression],
    [10, peers.CallExpression],
    [5, peers.BigIntLiteral],
    [112, peers.TSImportType],
    [141, peers.TaggedTemplateExpression],
    [34, peers.FunctionDeclaration],
    [71, peers.ETSTypeReference],
    [128, peers.TSTypeReference],
    [48, peers.NamedType],
    [52, peers.NumberLiteral],
    [125, peers.TSFunctionType],
    [142, peers.TemplateElement],
    [131, peers.TSInterfaceDeclaration],
    [150, peers.VariableDeclaration],
    [51, peers.UndefinedLiteral],
    [45, peers.MemberExpression],
    [139, peers.TSClassImplements],
    [97, peers.TSObjectKeyword],
    [73, peers.ETSUnionType],
    [105, peers.TSPropertySignature],
    [111, peers.TSConditionalType],
    [109, peers.TSLiteralType],
    [127, peers.TSTypeAliasDeclaration],
    [21, peers.DebuggerStatement],
    [58, peers.ReturnStatement],
    [27, peers.ExportDefaultDeclaration],
    [59, peers.ScriptFunction],
    [14, peers.ClassDefinition],
    [132, peers.TSInterfaceBody],
    [137, peers.TSTypeQuery],
    [98, peers.TSBigintKeyword],
    [55, peers.Property],
    [151, peers.VariableDeclarator],
    [61, peers.StringLiteral],
    [140, peers.TSTypeAssertion],
    [89, peers.TSExternalModuleReference],
    [95, peers.TSUndefinedKeyword],
    [81, peers.ETSTuple],
    [147, peers.TryStatement],
    [148, peers.UnaryExpression],
    [31, peers.ForInStatement],
    [144, peers.ThisExpression],
    [106, peers.TSMethodSignature],
    [6, peers.BinaryExpression],
    [83, peers.SuperExpression],
    [3, peers.AssertStatement],
    [92, peers.TSStringKeyword],
    [30, peers.ExpressionStatement],
    [82, peers.ETSModule],
    [46, peers.MetaProperty],
    [102, peers.TSArrayType],
    [107, peers.TSSignatureDeclaration],
    [26, peers.ExportAllDeclaration],
    [29, peers.ExportSpecifier],
    [134, peers.TSTupleType],
    [35, peers.FunctionExpression],
    [136, peers.TSIndexSignature],
    [123, peers.TSModuleDeclaration],
    [39, peers.ImportDeclaration],
    [108, peers.TSParenthesizedType],
    [13, peers.CharLiteral],
    [69, peers.ETSPackageDeclaration],
    [79, peers.ETSImportDeclaration],
    [84, peers.ETSStructDeclaration],
    [115, peers.TSModuleBlock],
    [76, peers.ETSNewArrayInstanceExpression],
    [1, peers.AnnotationDeclaration],
    [2, peers.AnnotationUsage],
    [25, peers.EmptyStatement],
    [75, peers.ETSLaunchExpression],
    [152, peers.WhileStatement],
    [12, peers.ChainExpression],
    [113, peers.TSIntersectionType],
    [149, peers.UpdateExpression],
    [155, peers.BlockExpression],
    [104, peers.TSTypeLiteral],
    [118, peers.TSTypeParameter],
    [93, peers.TSBooleanKeyword],
    [121, peers.TSTypePredicate],
    [42, peers.ImportNamespaceSpecifier],
    [28, peers.ExportNamedDeclaration],
    [80, peers.ETSParameterExpression],
    [120, peers.TSTypeParameterInstantiation],
    [50, peers.NullLiteral],
    [110, peers.TSInferType],
    [85, peers.SwitchCaseStatement],
    [153, peers.YieldExpression],
    [124, peers.TSImportEqualsDeclaration],
    [8, peers.BooleanLiteral],
    [90, peers.TSNumberKeyword],
    [18, peers.ClassStaticBlock],
    [100, peers.TSNonNullExpression],
    [54, peers.PrefixAssertionExpression],
    [16, peers.ClassExpression],
    [32, peers.ForOfStatement],
    [143, peers.TemplateLiteral],
    [103, peers.TSUnionType],
    [96, peers.TSUnknownKeyword],
    [36, peers.Identifier],
    [154, peers.OpaqueTypeNode],
    [7, peers.BlockStatement],
    [23, peers.DirectEvalExpression],
    [119, peers.TSTypeParameterDeclaration],
    [47, peers.MethodDefinition],
    [101, peers.TSNullKeyword],
    [133, peers.TSInterfaceHeritage],
    [70, peers.ETSClassLiteral],
    [9, peers.BreakStatement],
    [56, peers.RegExpLiteral],
    [114, peers.TSMappedType],
    [91, peers.TSAnyKeyword],
    [15, peers.ClassDeclaration],
    [130, peers.TSIndexedAccessType],
    [129, peers.TSQualifiedName],
    [4, peers.AwaitExpression],
    [20, peers.ContinueStatement],
    [77, peers.ETSNewMultiDimArrayInstanceExpression],
    [135, peers.TSNamedTupleMember],
    [40, peers.ImportExpression],
    [62, peers.ETSNullType],
    [63, peers.ETSUndefinedType],
    [145, peers.TypeofExpression],
    [88, peers.TSEnumMember],
    [86, peers.SwitchStatement],
    [24, peers.DoWhileStatement],
    [11, peers.CatchClause],
    [60, peers.SequenceExpression],
    [0, peers.ArrowFunctionExpression],
    [53, peers.OmittedExpression],
    [78, peers.ETSNewClassInstanceExpression],
    [138, peers.TSAsExpression],
    [33, peers.ForUpdateStatement],
    [72, peers.ETSTypeReferencePart],
    [57, peers.ETSReExportDeclaration],
    [68, peers.ETSPrimitiveType],
    [49, peers.NewExpression],
    [122, peers.TSParameterProperty],
    [67, peers.ETSWildcardType],
    [116, peers.TSThisType],
])